Exploring community structure of software Call Graph and its applications in class cohesion measurement
نویسندگان
چکیده
Many complex networked systems exhibit natural divisions of network nodes. Each division, or community, is a densely connected subgroup. Such community structure not only helps comprehension but also finds wide applications in complex systems. Software networks, e.g., Class Dependency Networks, are such networks with community structures, but their characteristics at the function or method call granularity have not been investigated, which are useful for evaluating and improving software intra-class structure. Moreover, existing proposed applications of software community structure have not been directly compared or combined with existing software engineering practices. Comparison with baseline practices is needed to convince practitioners to adopt the proposed approaches. In this paper, we show that networks formed by software methods and their calls exhibit relatively significant community structures. Based on our findings we propose two new class cohesion metrics to measure the cohesiveness of object-oriented programs. Our experiment on 10 large open-source Java programs validate the existence of community structures and the derivedmetrics give additional and useful measurement of class cohesion. As an application we show that the new metrics are able to predict software faults more effectively than existing metrics. © 2015 Elsevier Inc. All rights reserved.
منابع مشابه
Some finite groups with divisibility graph containing no triangles
Let $G$ be a finite group. The graph $D(G)$ is a divisibility graph of $G$. Its vertex set is the non-central conjugacy class sizes of $G$ and there is an edge between vertices $a$ and $b$ if and only if $a|b$ or $b|a$. In this paper, we investigate the structure of the divisibility graph $D(G)$ for a non-solvable group with $sigma^{ast}(G)=2$, a finite simple group $G$ that satisfies the one-p...
متن کاملImproving Class Cohesion Measurement: Towards a Novel Approach Using Hierarchical Clustering
Class cohesion is considered as one of the most important object-oriented software attributes. High cohesion is, in fact, a desirable property of software. Many different metrics have been suggested in the last several years to measure the cohesion of classes in object-oriented systems. The class of structural object-oriented cohesion metrics is the most investigated category of cohesion metric...
متن کاملThe impact of accounting for special methods in the measurement of object-oriented class cohesion on refactoring and fault prediction activities
Class cohesion is a key attribute that is used to assess the design quality of a class, and it refers to the extent to which the attributes and methods of the class are related. Typically, classes contain special types of methods, such as constructors, destructors, and access methods. Each of these special methods has its own characteristics, which can artificially affect the class cohesion mea...
متن کاملGraph Clustering Evaluation Metrics as Software Metrics
ion. Therefore, the aim of this paper is to investigate existing GCE metrics as metrics reflecting cohesion of software modules. The rest of the paper is structured as follows. Related work is presented in Section 2. Graph clustering evaluation metrics explored in this work as software metrics are defined in the next section of the paper. Section 4 explains how GCE metrics can be applied to gra...
متن کاملImproving the quality of software cohesion metrics through dynamic analysis
Class cohesion is an important object oriented software quality attribute. Assessing the class cohesion and improving the class quality accordingly during the object oriented design phase allows for cheaper management of the later phases. Most of the cohesion metrics planned in the journalism describes static cohesion measurement at design level. Static metrics is a measure that is applied at t...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Journal of Systems and Software
دوره 108 شماره
صفحات -
تاریخ انتشار 2015